Local area networks (LANs) and other computer networks are becoming more common place on mobile platforms, e.g. aircraft, ships and trains. Architecturally, mobile networks are very similar to ground based, or terrestrial, networks. Mobile networks typically include servers, databases and other storage mediums, processors, and client systems, as do typical terrestrial network. Given the mobile nature of mobile networks, they are typically connected to a terrestrial network via a wireless communication system such as a satellite network. Therefore, in addition to the standard components, mobile networks typically include transmit and receive cards that allow the mobile network to communicate with terrestrial networks that include similar transmit and receive card.
Although more and more mobile platforms are equipped with mobile networks, it is difficult to provide a level of functionality within mobile networks similar to the level of functionality of terrestrial networks. A major reason for this lower level of functionality in mobile networks is that their functionality is dependent on communication with terrestrial networks. Since mobile platforms are not stationary, a constant communication link to a terrestrial network is difficult to maintain. For example, an aircraft moving at 500 miles per hour and using satellite links to a terrestrial network will have to occasionally switch between more than one satellite to maintain communication with the ground network. This switching will cause delays in the transfer of data from the ground network to the mobile network. Additionally, there will be inherent delays caused by the long distances over which the data is transmitted.
Further diminishment of functionality is caused when various components of the mobile network attempt to operate having time sub-systems of the components set to the incorrect time and/or out of synchronization with time sub-systems of the other component. Even further functionality is lost when the mobile network time services are out of synchronization with the terrestrial network with which it is communicating. On a mobile platform such as an aircraft, power is typically applied to all mobile network components simultaneously and all components attempt to boot up at the same time. Most components do not have battery backed up time features. Therefore, as the components simultaneously boot up, each will boot up using the time from its respective time subsystem, which will likely vary widely from component to component.
To establish the correct time each component typically utilizes network time protocol (NTP) software that attempts to correct the time of a component so it matches the universal time coordinated (UTC) time. At initialization of a component, a NTP sub-program, NTPD, is executed that requests the time from a ‘Parent’ component of the requesting component. The ‘Parent’ component is the next component between the requesting component and a mobile network server. NTPD then adjusts the time of the requesting component to bring it closer to the ‘Parent’ time. NTPD will adjust the requesting component time periodically until that component time matches the ‘Parent’ time. The ‘Parent’ component also runs NTPD, thereby requesting and updating time from its ‘Parent’ component.
This hierarchical process is reiterated for each component within the mobile network until time is requested from the mobile network server, which has battery backed up time that maintains reasonably accurate time. However, upon establishing a two-way communication link with the terrestrial network, the mobile network server requests a time update from the terrestrial network server, which maintains UTC time via a GPS time receiver.
Although NTPD attempts to update the time of each component to the UTC time using the hierarchical process, NTPD only makes very small adjustments, e.g. microseconds, to the time of the requesting component. Therefore, if the requesting component time and the ‘Parent’ time have a large differential it will take a very long time for the ‘Child’ component time to match the ‘Parent’ time. To correct large time differentials, each component runs a NTP sub-program, ntpdate, which will make larger time adjustments to the requesting component's time subsystem. However, ntpdate is executed only once upon boot up of a component, after which NTPD is periodically executed regardless of whether ntpdate was successful in adjusting the time to UTC time.
Thus, it would be desirable to compensate for these large time differentials and accurately synchronize both the time architecture as well as the time distribution between components of the mobile network, and between the mobile network and the terrestrial network.